// 更新
// 请补全JavaScript代码，该函数接收两个参数分别为旧版本、新版本，当新版本高于旧版本时表明需要更新，返回true，否则返回false。

export const _shouldUpdate = (oldVision: string, newVision: string) => {
	const newList = newVision.split('.')
	const oldList = oldVision.split('.')

	return newList.some((v, i) => {
		return v > oldList[i]
	})
}

console.log(_shouldUpdate('10.1.1', '10.1.1'));

// 实现栈结构
class Stack<T> {
	list: T[] = []

	push(value: T) {
		const index = this.list.length;
		this.list[index] = value
		return this.list.length
	}
	pop() {
		return this.list.pop()
	}
	removeByIndex(index: number) {
		if(index >= this.list.length) {
			return undefined
		}

		const middleList: T[] = [];

		//保存临时中间过渡的数据
		for (let i = 0; i < this.list.length - index; i++) {
			middleList.push(this.pop() as T)
		}
		// 删除需要删除的数据
		middleList.pop()

		while(middleList.length > 0) this.push(middleList.pop() as T)	
	}
}

const p = new Stack<string>()

p.push("a")  // 0

p.push('b')  // 1

p.push("c")  // 2

p.push("d")   //3

p.push("e")  // 4

p.push("f")   // 5


p.removeByIndex(1)

console.log(p);
